遇見 Laravel 的午後(Part 2)
很多人應該跟我一樣,當開啟Laravel的專案時,只有呆滯:flushed:的眼神看著這些資料夾,下一秒應該就是想放棄了對吧!其實這些資料夾一點都不可怕,只要你懂了,其實下面對你來說輕而易舉而已。
首先我們應該介紹一下框架的MVC架構
- Model 資料的管理(資料庫的溝通)、演算法邏輯(商業邏輯)、物件結構定義
- View 處理網頁外觀的物件、呈現給使用者看、操作的介面
- Controller 傳入的資料該怎麼運作、程式流程的控制、該回傳給使用者什麼資料等
1 | digraph { |
參考維基百科: https://zh.wikipedia.org/wiki/MVC
Laravel目錄架構
我們前言有介紹到MVC架構,如果在Laravel 目錄下去尋MVC架構,只會尋找到Views跟Controllers,那Models跑去哪了? 在laravel官網是說
「許多開發人員都對缺少models的目錄感到疑惑,對於models的定義有些模糊,有些開發人員對於model的應用在於商業邏輯上,但有些開發人員對於model僅限於類別方法與資料庫之間的交互運用。」所以才刻意設計的。
- app
- Http
- Controllers
- Http
- resources
- views
Laravel目錄結構介紹
第一層為紅字的資料夾都算是最主要的,其他沒有標註解釋的,其實還想不到有什麼用途。
- app
整個專案的程式核心
備註1
- Console
自行定義artisan指令檔案
- Exceptions
自行定義錯誤、例外類
- Http
應用程式的控制器、請求、中介層。
- Controllers
存放控制器檔案
- Middleware
存放「中介軟體」檔案
- Controllers
- Providers
應用的服務提供器
- user.php
Model預設寫在這
- Console
- bootstrap
初始化框架的啟用程式
- cache
加快框架、路由和服務的啟用速度
- cache
- config
框架與其它服務的設定檔(專案的設定、session、資料庫、快取設定)
- factories
- migrations
存放自動生成資料庫與子資料的內容檔案
- seeds
- database
資料庫操作、存放SQL、SQLite的資料、資料庫遷移等
- public
網站唯一的進入點,可以將 CSS、Javascript、.htaccess、index.php、圖片等檔案放在此。
備註2
- resources
放置套件相關資源
- js
未編譯的 JavaScript 程式碼
- lang
多國語系資源目錄,每個子目錄對應到一個語系。
- sass
sass未編譯成css程式碼
- views
檢視頁面
- js
- routes
網站路由規則配置
- api.php
定義 API 的路由
- channels.php
- console.php
定義 Artisan 命令
- web.php
定義 web 型別的路由
- api.php
- storage
存放編譯後的Blade模板、cache、log、session 等
- app
儲存應用程式使用的任何檔案
- public
儲存公開的文件等
- public
- framework
儲存框架生成的檔案及快取
- logs
日誌檔案
- app
- tests
存放單元測試、自動化測試
- Feature
- Unit
- vendor
Laravel 框架的主程式及相依套件,第三方套件、Composer安裝包也是放在此。
備註1
:使用 composer 支援的PSR-4 autoloading standard規範,我們只要設定好一次 Composer的命名空間 Namespace,當日後增加類別的時候,就能非常簡單的自動讀取。但有於Laravel預先給專案目錄資料夾app下會做自動讀取。
備註2
:一般MVC框架會以根目錄index.php為網站進入點,但laravel為保護應用不被直接存取,所以建議將網站的根目錄指向public。
結論
或許在上面簡單的介紹與對應可能還無法理解,但接下來實作會依依詳細介紹,會讓各位開發者更清楚知道。
標籤: w3HexSchool
PHP
Laravel
原文作者: Sian
原文鏈接: https://dew31794.github.io/2020/03/09/遇見 Laravel 的午後(Part 2)/
版權聲明: 轉載請註明出處(必須保留作者署名及鏈接)